package cuiyt.offer;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Queue;

/**
 * @author cyt
 * @create 2020-05-30 15:21
 */
public class T36 {

    /**
     * 从上往下打印出二叉树的每个节点，同层节点从左至右打印。
     * <p>
     * 层序遍历
     *
     * @param args
     */
    public static void main(String[] args) {

    }

    public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
        Queue<TreeNode> que = new LinkedList<>();
        ArrayList<Integer> list = new ArrayList<>();
        if (root == null) {
            que.add(root);
        }

        while (!que.isEmpty()) {
            TreeNode peek = que.peek();
            que.remove();
            list.add(peek.val);
            if (peek.left != null) que.add(peek.left);
            if (peek.right != null) que.add(peek.right);
        }
        return list;
    }
}
